package com.itheima.myreflect2.Student.convertedio;

import java.io.Serializable;

/**
 * @program: Myset
 * @description:
 * @author: xuejingjing
 * @create: 2021-06-16 10:05
 **/

//序列化:用对象操作输出流，将对象写入到本地文件，就是序列化。
public class User  implements Serializable {
    //serialVersionUID 序列号
    //如果我们自己没有定义，那么虚拟机会根据类中的信息会自动的计算出一个序列号。
    //问题：如果我们修改了类中的信息，那么虚拟机会再次计算出一个序列号。

    //第一步：把User对象序列化到本地，把序列号写到本地文件中 ----5824992206458892149
    //第二步：修改了JavaBean类，导致 ---类中的序列号 4900133124572371851
    //第三步：把文件中的对象读到内存，本地中的序列号和类中的序列号不一致了。

    //如何解决
    //不让虚拟机帮我们自动计算，我们自己手动给出，而且这个值不要变。

    //序列号

    //在序列化对象的时候，如果不想将某个对象属性值序列化到本地，transient关键字。

    private static final long serialVersion = 1L;


    private String userName;
    private String password;

    public User(String userName, String password) {
        this.userName = userName;
        this.password = password;
    }

    public User() {
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "userName='" + userName + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}
